package cn.bdqn.pojo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value = "订单实体类", description = "这是用来描述一个类的信息")
public class ItripHotelOrder {

    @ApiModelProperty(value = "主键", required = true, notes = "这是必须要填")
    private Long id;

    @ApiModelProperty(value = "用户id", required = true, notes = "这是必须要填")
    private Long userId;

    @ApiModelProperty(value = "订单类型", notes = "0:旅游产品 1:酒店产品 2：机票产品")
    private Integer orderType;

    @ApiModelProperty(value = "订单号", required = true, notes = "这是必须要填")
    private String orderNo;

    @ApiModelProperty(value = "交易编号")
    private String tradeNo;

    @ApiModelProperty(value = "酒店id", notes = "冗余字段")
    private Long hotelId;

    @ApiModelProperty(value = "酒店名称", notes = "冗余字段")
    private String hotelName;

    @ApiModelProperty(value = "房间id", required = true, notes = "这是必须要填")
    private Long roomId;

    @ApiModelProperty(value = "消耗数量", required = true, notes = "这是必须要填")
    private Integer count;

    @ApiModelProperty(value = "预订天数", required = true, notes = "这是必须要填")
    private Integer bookingDays;

    @ApiModelProperty(value = "入住时间", required = true, notes = "这是必须要填")
    private Date checkInDate;

    @ApiModelProperty(value = "退房时间", required = true, notes = "这是必须要填")
    private Date checkOutDate;

    @ApiModelProperty(value = "订单状态", required = true, notes = "0：待支付 1:已取消 2:支付成功 3:已消费 4：已点评")
    private Integer orderStatus;

    @ApiModelProperty(value = "支付金额")
    private BigDecimal payAmount;

    @ApiModelProperty(value = "支付方式", notes ="支付方式:1:支付宝 2:微信 3:到店付")
    private Integer payType;

    @ApiModelProperty(value = "联系手机号")
    private String noticePhone;

    @ApiModelProperty(value = "联系邮箱")
    private String noticeEmail;

    @ApiModelProperty(value = "是否需要发票", notes ="0：不需要 1：需要")
    private Integer isNeedInvoice;

    @ApiModelProperty(value = "发票类型", notes ="0：个人 1：公司")
    private Integer invoiceType;

    @ApiModelProperty(value = "发票抬头")
    private String invoiceHead;

    @ApiModelProperty(value = "入住人名称")
    private String linkUserName;

    @ApiModelProperty(value = "端口类型", notes ="0:WEB端 1:手机端 2:其他客户端")
    private Integer bookType;

    @ApiModelProperty(value = "创建日期", required = true, notes = "必填")
    private Date creationDate;

    private Long createdBy;

    private Date modifyDate;

    private Long modifiedBy;

    @ApiModelProperty(value = "特殊需求")
    private String specialRequirement;

    private ItripHotel itripHotel;
    private ItripHotelRoom itripHotelRoom;

    public ItripHotel getItripHotel() {
        return itripHotel;
    }

    public void setItripHotel(ItripHotel itripHotel) {
        this.itripHotel = itripHotel;
    }

    public ItripHotelRoom getItripHotelRoom() {
        return itripHotelRoom;
    }

    public void setItripHotelRoom(ItripHotelRoom itripHotelRoom) {
        this.itripHotelRoom = itripHotelRoom;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo == null ? null : orderNo.trim();
    }

    public String getTradeNo() {
        return tradeNo;
    }

    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo == null ? null : tradeNo.trim();
    }

    public Long getHotelId() {
        return hotelId;
    }

    public void setHotelId(Long hotelId) {
        this.hotelId = hotelId;
    }

    public String getHotelName() {
        return hotelName;
    }

    public void setHotelName(String hotelName) {
        this.hotelName = hotelName == null ? null : hotelName.trim();
    }

    public Long getRoomId() {
        return roomId;
    }

    public void setRoomId(Long roomId) {
        this.roomId = roomId;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public Integer getBookingDays() {
        return bookingDays;
    }

    public void setBookingDays(Integer bookingDays) {
        this.bookingDays = bookingDays;
    }

    public Date getCheckInDate() {
        return checkInDate;
    }

    public void setCheckInDate(Date checkInDate) {
        this.checkInDate = checkInDate;
    }

    public Date getCheckOutDate() {
        return checkOutDate;
    }

    public void setCheckOutDate(Date checkOutDate) {
        this.checkOutDate = checkOutDate;
    }

    public Integer getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public String getNoticePhone() {
        return noticePhone;
    }

    public void setNoticePhone(String noticePhone) {
        this.noticePhone = noticePhone == null ? null : noticePhone.trim();
    }

    public String getNoticeEmail() {
        return noticeEmail;
    }

    public void setNoticeEmail(String noticeEmail) {
        this.noticeEmail = noticeEmail == null ? null : noticeEmail.trim();
    }

    public Integer getIsNeedInvoice() {
        return isNeedInvoice;
    }

    public void setIsNeedInvoice(Integer isNeedInvoice) {
        this.isNeedInvoice = isNeedInvoice;
    }

    public Integer getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(Integer invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceHead() {
        return invoiceHead;
    }

    public void setInvoiceHead(String invoiceHead) {
        this.invoiceHead = invoiceHead == null ? null : invoiceHead.trim();
    }

    public String getLinkUserName() {
        return linkUserName;
    }

    public void setLinkUserName(String linkUserName) {
        this.linkUserName = linkUserName == null ? null : linkUserName.trim();
    }

    public Integer getBookType() {
        return bookType;
    }

    public void setBookType(Integer bookType) {
        this.bookType = bookType;
    }

    public Date getCreationDate() {
        return creationDate;
    }

    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    public Long getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(Long createdBy) {
        this.createdBy = createdBy;
    }

    public Date getModifyDate() {
        return modifyDate;
    }

    public void setModifyDate(Date modifyDate) {
        this.modifyDate = modifyDate;
    }

    public Long getModifiedBy() {
        return modifiedBy;
    }

    public void setModifiedBy(Long modifiedBy) {
        this.modifiedBy = modifiedBy;
    }

    public String getSpecialRequirement() {
        return specialRequirement;
    }

    public void setSpecialRequirement(String specialRequirement) {
        this.specialRequirement = specialRequirement == null ? null : specialRequirement.trim();
    }
}